package com.easyfile.easyfilemaster.service;

import com.easyfile.easyfilemaster.entity.UserDetail;
import com.easyfile.easyfilemaster.entity.UserInfo;
import com.easyfile.easyfilemaster.entity.base.LoginResult;
import com.easyfile.easyfilemaster.entity.base.Result;
import com.easyfile.easyfilemaster.entity.dto.*;

/**
 * 用户信息业务操作
 * @author chenpeman
 */
public interface UserService {
    /**
     * 登录
     *
     * @param loginDto the login dto
     * @return the login result
     */
    LoginResult<UserInfo> login(LoginDto loginDto);

    /**
     * 手机号注册
     *
     * @param mobileRegisterDto the mobile register dto
     * @return the login result
     */
    LoginResult<UserInfo> mobileRegister(MobileRegisterDto mobileRegisterDto);

    /**
     * 获取短信验证码
     *
     * @param mobile the mobile
     * @return the ver code
     */
    Result<Void> getVerCode(String mobile);

    /**
     * 校验token合法性
     *
     * @param token the token
     * @return the login result
     */
    LoginResult<UserInfo> checkToken(String token);

    /**
     * 更新用户基本信息
     *
     * @param dto the user detail
     * @return the result
     */
    Result<Void> updateUser(UpdateUserDto dto);

    /**
     * 更新用户密码
     *
     * @param dto the dto
     * @return the result
     */
    Result<Void> updateUserPassword(UpdateUserPasswordDto dto);

    /**
     * 更新用户手机号
     *
     * @param dto the dto
     * @return the result
     */
    Result<Void> updateUserMobile(UpdateUserMobileDto dto);
}
